home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / Data.cab / _60EF46AD352A4E1EA2D18706D443FC91 < prev    next >
Encoding:
Text File  |  2004-04-01  |  1.6 KB  |  77 lines

  1.     m4x3    r0, v0, c40            // r0 = position in light space (x,y,z)
  2.     dp3    r1.x, r0, r0
  3.     rsq    r1.y, r1.x
  4.     mul    r1.z, r0.z, r1.y        // r1.z = dot(normalize(r0), (0,0,1)) = normalize(r0).z
  5.     mad    r1.z, r1.z, c70.x, c70.y    // remap to [1,0]
  6.     max    r1.z, r1.z, c70.z        // clamp to 0
  7.  
  8.     rcp    r1.w, r0.z            // distance attenuation
  9.     mul    r1.w, r1.w, c70.w        // r1.w = 0.2/z
  10.     max    r1.w, r1.w, c70.z        // clamp to 0
  11.  
  12.     dp3    r1.y, v1, c60            // diffuse lighting (normal dot light_dir)
  13.     max    r1.y, r1.y, c70.z
  14.  
  15.     mul    r1.z, r1.z, r1.w
  16.     mul    r1.z, r1.z, r1.y
  17.     mul    r2, c44, r1.z            // mul by light color
  18.  
  19.     // spot 1
  20.     m4x3    r0, v0, c45
  21.     dp3    r1.x, r0, r0
  22.     rsq    r1.y, r1.x
  23.     mul    r1.z, r0.z, r1.y
  24.     mad    r1.z, r1.z, c70.x, c70.y
  25.     max    r1.z, r1.z, c70.z
  26.  
  27.     rcp    r1.w, r0.z
  28.     mul    r1.w, r1.w, c70.w
  29.     max    r1.w, r1.w, c70.z
  30.  
  31.     dp3    r1.y, v1, c61
  32.     max    r1.y, r1.y, c70.z
  33.  
  34.     mul    r1.z, r1.z, r1.w
  35.     mul    r1.z, r1.z, r1.y
  36.     mad    r2, c49, r1.z, r2
  37.  
  38.     // spot 2
  39.     m4x3    r0, v0, c50
  40.     dp3    r1.x, r0, r0
  41.     rsq    r1.y, r1.x
  42.     mul    r1.z, r0.z, r1.y
  43.     mad    r1.z, r1.z, c70.x, c70.y
  44.     max    r1.z, r1.z, c70.z
  45.  
  46.     rcp    r1.w, r0.z
  47.     mul    r1.w, r1.w, c70.w
  48.     max    r1.w, r1.w, c70.z
  49.  
  50.     dp3    r1.y, v1, c62
  51.     max    r1.y, r1.y, c70.z
  52.  
  53.     mul    r1.z, r1.z, r1.w
  54.     mul    r1.z, r1.z, r1.y
  55.     mad    r2, c54, r1.z, r2
  56.  
  57.     // spot 3
  58.     m4x3    r0, v0, c55
  59.     dp3    r1.x, r0, r0
  60.     rsq    r1.y, r1.x
  61.     mul    r1.z, r0.z, r1.y
  62.     mad    r1.z, r1.z, c70.x, c70.y
  63.     max    r1.z, r1.z, c70.z
  64.  
  65.     rcp    r1.w, r0.z
  66.     mul    r1.w, r1.w, c70.w
  67.     max    r1.w, r1.w, c70.z
  68.  
  69.     dp3    r1.y, v1, c63
  70.     max    r1.y, r1.y, c70.z
  71.  
  72.     mul    r1.z, r1.z, r1.w
  73.     mul    r1.z, r1.z, r1.y
  74.     mad    r2, c59, r1.z, r2
  75.  
  76.     mov    oD0.xyz, r2
  77.